revert "QProcessEnvironment: simplify locking"
authorDebian Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
Thu, 29 Jan 2026 19:25:23 +0000 (22:25 +0300)
committerDmitry Shachnev <mitya57@debian.org>
Thu, 29 Jan 2026 19:25:23 +0000 (22:25 +0300)
commit3162e35bb59890a925e683edb8ed833fe8a05aa8
treebe688ca05c5006703c96eb2265dde374faad879a
parent20e817144574513f5f75d364a7c0128e6e2d6a5d
revert "QProcessEnvironment: simplify locking"

Origin: upstream, https://code.qt.io/cgit/qt/qtbase.git/commit?id=080d61c020678b75
Last-Update: 2026-01-29

This reverts commit c5d6b263c204cb09db2be36826e19acb03dc24fb.

The commit being reverted assumes the mutex is only protecting 'nameMap'
and nothing else is mutable, which is false. The mutex is not only
protecting 'nameMap' but also protecting the containing value objects,
since even though the value object is accessed read-only, its
implementation mutates its internal states for 2-way conversion between
ByteArray and QString.

Commit 85e61297f7b02297641826332dbdbc845a88c34b ("restore
QProcessEnvironment shared data thread safety on unix") said that
implicit sharing together with 'mutable' is a time bomb and the bomb is
triggered by the reverted commit.

Gbp-Pq: Name revert_simplify_locking.diff
src/corelib/io/qprocess.cpp
src/corelib/io/qprocess_p.h
src/corelib/io/qprocess_unix.cpp